#include <string>
#include <iostream>
using std::cout;
using std::endl;
using std::string;
int8_t strToChar(string str8)
{
    //补码
    // str="11001111">>>> 11001111>>>>207
    // 0000 0000 0000 0000 0000 0000 1100 1111
    //将8位的string  变成32位
    str8.insert(str8.begin() + 1, 24, '1');
    int32_t num = 0;
    //说明是负数  需要补码-1 取反 得到原码  然后去掉第一位取值  然后
    if (str8[0] == '1')
    {
        cout<<str8<<endl;
        str8.erase(0, 1);
        cout<<str8<<endl;
        num = ((std::stoi(str8, 0, 2) - 1));
        cout<<num<<endl;
    }
    else
    {
        num = std::stoi(str8, 0, 2);
    }
    return (int8_t)num;
}

int main()
{
    std::string str("11001111");
    uint8_t num = strToChar(str);
    std::cout << "num=" <<num<< std::endl;
}